Parallel Type-checking with Saturating LVars
نویسندگان
چکیده
Given the sophistication of recent type systems, unification-based type-checking and inference can be a time-consuming phase of compilation—especially when union types are combined with subtyping. It is natural to consider improving performance through parallelism, but these algorithms are challenging to parallelize due to complicated control structure and difficulties representing data in a way that is both efficient and supports concurrency. We provide a solution to these problems based on the LVish approach to deterministic-by-default parallel programming. We extend LVish with a novel class of concurrent data structures: Saturating LVars, which are the first LVars to safely release memory during the object’s lifetime. Our new design allows us to achieve a parallel speedup on worst-case (exponential) inputs of traditional HindleyMilner inference, and on the Typed-Racket type-checking algorithm, which yields up an 8.46× parallel speedup on type-checking examples drawn from the Racket repository.
منابع مشابه
Joining Forces Toward a Unified Account of LVars and Convergent Replicated Data Types
LVars—shared memory locations whose semantics are defined in terms of an application-specific lattice—offer a principled approach to deterministic-by-construction, shared-state parallel programming: writes to an LVar take the join of the old and new values with respect to the lattice, while reads from an LVar can observe only that its contents have crossed a specified “threshold” in the lattice...
متن کاملFreeze After Writing Quasi-Deterministic Parallel Programming with LVars and Handlers
Deterministic-by-construction parallel programming models of-fer programmers the promise of freedom from subtle, hard-to-reproduce nondeterministic bugs in parallel code. A principled ap-proach to deterministic-by-construction parallel programming withshared state is offered by LVars: shared memory locations whosesemantics are defined in terms of a user-specified lattice. Wr...
متن کاملThesis Proposal: Lattice-based Data Structures for Deterministic Parallel and Distributed Programming
Deterministic-by-construction parallel programming models guarantee that programs written using them will have the same observable behavior on every run. These models offer the promise of freedom from subtle, hard-to-reproduce bugs caused by schedule nondeterminism. In order to guarantee determinism, though, deterministic-by-construction models must sharply restrict the sharing of state between...
متن کاملFreeze After Writing Quasi-Deterministic Parallel Programming with LVars and Handlers
Deterministic-by-construction parallel programming models offer programmers the promise of freedom from subtle, hard-toreproduce nondeterministic bugs in parallel code. A principled approach to deterministic-by-construction parallel programming with shared state is offered by LVars: shared memory locations whose semantics are defined in terms of a user-specified lattice. Writes to an LVar take ...
متن کاملFreeze After Writing Quasi-Deterministic Parallel Programming with LVars and Handlers
Deterministic-by-construction parallel programming models offer programmers the promise of freedom from subtle, hard-toreproduce nondeterministic bugs in parallel code. A principled approach to deterministic-by-construction parallel programming with shared state is offered by LVars: shared memory locations whose semantics are defined in terms of a user-specified lattice. Writes to an LVar take ...
متن کامل